'''
Created on 09/08/2012

@author: rcasal
'''
from domain.entity import Entity
from domain.entities.tipodocumento import TipoDocumento

class Baja(object):
    
    @property
    def fecha(self):
        return self.__fecha

    @property
    def motivo(self):
        return self.__motivo

    
    def __init__(self, fecha, motivo):
        self.__fecha = fecha
        self.__motivo = motivo
    


class Plan(object):
    
    @property
    def nombre(self):
        return self.__nombre
    @nombre.setter
    def nombre(self, value):
        self.__nombre = value
        
    @property
    def baja(self):
        return self.__baja
        
    def __init__(self, nombre):
        self.__nombre = nombre
        self.__baja = Baja("---", "---")
        
    def set_baja(self, fecha, motivo):
        if fecha:
            self.__baja = Baja(fecha, motivo)
        else:
            self.__baja = Baja("---", "---")
            

class Afiliado(Entity):
    
    @staticmethod
    def deserialize(fields):
        afil = Afiliado()
        afil.ID = fields.id
        afil.nombres = fields.Nombres
        afil.apellido = fields.Apellido
        afil.tipodoc.ID = fields.DocumentoTipo
        afil.nrodoc = fields.DocumentoNro
        afil.cuil = fields.CUIL
        return afil
          
    def __init__(self):
        Entity.__init__(self)
        self.__nombres = ""
        self.__apellido = ""
        self.__tipodoc = TipoDocumento()
        self.__nrodoc = None
        self.__cuil = ""
        self.__plan = Plan("ALTA")
        
    @property    
    def nombres(self):
        return self.__nombres
    @nombres.setter
    def nombres(self, value):
        self.__nombres= value
        
    @property    
    def apellido(self):
        return self.__apellido
    @apellido.setter
    def apellido(self, value):
        self.__apellido = value
        
    @property    
    def tipodoc(self):
        return self.__tipodoc
    @tipodoc.setter
    def tipodoc(self, value):
        self.__tipodoc = value
        
    @property    
    def nrodoc(self):
        return self.__nrodoc
    @nrodoc.setter
    def nrodoc(self, value):
        self.__nrodoc = value
        
    @property    
    def cuil(self):
        return self.__cuil
    @cuil.setter
    def cuil(self, value):
        self.__cuil = value
        
    @property
    def plan(self):
        return self.__plan
    @plan.setter
    def plan(self, value):
        self.__plan = value
        
        